Vector artwork is becoming increasingly more common to create digital art that is smooth and can be scaled indefinitely without loss of quality. Vector artwork can require complex processing operations in order to render vector artwork on high-powered display devices. A graphics processing unit (GPU) is often employed to carry out graphics processing operations to accelerate the creation of vector artwork in a frame buffer intended for output to a display device. Rendering vector artwork on GPUs commonly calls for tessellation (which is regularly performed on a central processing unit (CPU)), where objects in a scene are divided into structures, referred to herein as “vector objects,” for rendering. One example of a vector object created by a tessellation operation are geometric primitives, which are simple shapes such as triangles that are used to construct objects in vector artwork. Geometric primitives can be used to construct more complex vector objects such as Bezier curves and Bezier surfaces, which can then be combined to form lines and surfaces in vector artwork.
In order to maintain resolution independence on the display device (i.e., to maintain a same pixel size of the vector artwork), conventional systems perform tessellation of a vector artwork once, and the tessellation is reused at all zoom levels. At each zoom level, additional graphics processing operations are applied to vector objects for rendering, followed by graphics processing operations performed on the pixel level of the display device.
Conventional systems continue to perform time-consuming processing operations such as shading and rasterizing on vector objects even when the vector objects are smaller than the size of a pixel. Consequently, time and processing resources are wasted at low zoom levels in processing vector objects, even when the vector objects may not contribute to even a single output pixel.